With the advent of the computer age, computer and software users have grown accustomed to user-friendly software applications that help then write, calculate, organize, prepare presentations, send and receive electronic mail, make music, and the like. For example, modem electronic word processing applications allow users to prepare a variety of useful documents. Modem spreadsheet applications allow users to enter, manipulate, and organize data. Modem electronic slide presentation applications allow users to create a variety of slide presentations containing text, pictures, data or other useful objects.
Documents, spreadsheets, presentations, and the like generated by such applications are often created from a variety of existing content such as other documents, spreadsheets, presentations, databases, images, etc. These so-called compound documents thereby often have embeddings that have the potential to create problems in documents by creating opaque regions in otherwise transparent files. In many embedding scenarios, there is communication between the containing or receiving application (the client application) and the application that generates the embedding (the server application).
A variety of problems may be caused when such compound documents are saved and/or repurposed (e.g., emailed to another user, tools run against, consumed by another application). One type of problem associated with such compound documents includes accidental information disclosure. For example, when documents contain documents or portions of other documents (embedded objects), it is often difficult to determine exactly what content is included in the embedded object. For example, a slide presentation document may include an embedded spreadsheet chart that is a view of salary information for a company. From within the presentation, it may appear as though it is only a summary of the salary information that may be suitable for a target audience. In fact, the embedded object may include underlying information that provides all details associated with the subject salary information. Under such a scenario, an unsuspecting manager might send the presentation around to a target audience not realizing that he/she has exposed detailed salary information for each employee in the company.
Another problem associated with such compound documents includes accidental or even intentional distribution of software code and/or viruses. While most anti-virus scanners know how to check for particular file types associated with known viruses, such scanners may not necessarily support scanning into all embedded content for determining whether the embedded content contains unacceptable code or a virus.
Another problem associated with such compound documents includes difficulties associated with integrating such documents into existing application solutions. In general, the way embedded content is stored within a document file format is different from the original document format. For example, an embedded chart in a presentation might use the chart syntax for the chart with some type of wrapper as defined by the presentation format. Even if a given solution can integrate with the presentation syntax, the solution may not be able to integrate with the chart syntax. The consequences of this integration problem may be that a solution provider/integrator might need to build a custom application solution for each type of embedded content, and in a large organization or government, this may be a prohibitive amount of work, especially given the lifetimes of documents and the pace at which document solutions and tools change.
It is with respect to these and other considerations that the present invention has been made.